Today's networking systems are very complex and are inherently distributed. Troubleshooting issues in networking systems is a very involved task. During recent years software defined networking (SDN) has been gaining momentum. SDN does not eliminate the complexity inherent in networking systems but it moves most of the complexity to one logically centralized system—the network controller.
Debugging networking systems like an SDN network controller is very complex as the network controller consists of a cluster of nodes controlling multiple network nodes. The debugging of the SDN controller (or the controller cluster) includes understanding the current forwarding state of the network and how this state is changed by the controller cluster during an interval of time. The currently used approach to debug issues and to determine or re-construct a forwarding state of the network is predominantly using text logs and network packet traces.